<?php
use Nette\Application\UI,
    Nette\Forms\Form;
/**
 * Description of Forum
 *
 * @author buddha
 */
class ForumPresenter extends BasePresenter {
    public $reakce;
    
    public function renderDefault() 
    {
        $this->template->forumVse = $this->getModels()->Forum->getForum();
    }
    
    public function renderPridat($reakceNa=0)
    {
        if($reakceNa > 0){
            $this->reakce=$reakceNa;
            $this->template->reForum = $this->getModels()->Forum->getReForum($reakceNa);

        }
    }
    
    protected function createComponentForumAdd()
    {
        $form = new Nette\Application\UI\Form;
        $form->addText('od', 'Vaše jméno/přezdívka:')
            ->setRequired('Zadejte své jméno nebo přezdívku!');
        $form->addHidden('komu', $this->reakce);
        $form->addTextArea('text', 'Příspěvek:')
            ->addRule(Form::MIN_LENGTH, 'Příspěvek o méně než 3 znacích ja zakázan!', 3)
            ->addRule(Form::MAX_LENGTH, 'Příspěvek je příliš dlouhý, maximum je 1000 znaků.', 1000)
            ->setRequired('Zadejte text Vašeho příspěvku.')
            ->getControlPrototype()->class('mceEditor');
        /*$form->addText('klic', 'Privátní klíč')
             ->addRule(Form::MAX_LENGTH, 'Příliš dlouhé, maximální délka je 10 znaků.', 10);*/
        $form->addHidden('klic', "");
        $form->addText('email', 'Váš email')
             ->addRule(Form::EMAIL, 'Zadejte emailovou adresu ve správném tvaru!');
        $stroj = array('ano' => 'ANO','ne' => 'NE');
        $form->addSelect('kontrola', 'Jsem stroj?',$stroj)
            ->addRule(Form::EQUAL,'Jsi opravdu robot?',ne);
        $form->addHidden('ok', 0);
        $form->addSubmit('send', 'Odeslat');
        $form->onSuccess[] = callback($this, 'forumAddSubmitted');
        return $form;
    }
    public function forumAddSubmitted($form)
    {
        try {

            $data = $form->getValues();
            $this->getModels()->forum->addForum($data->od, $data->komu, $data->text, $data->klic, $data->email, $data->ok);
            $this->flashMessage("Zpráva vložena!");

        } catch (NS\AuthenticationException $e) {
            $form->addError($e->getMessage());
        }
        //$this->error("neff");
        $this->redirect('Forum:');        
    }
    public function actionOut()
    {
            $this->getUser()->logout();
            $this->flashMessage('Byli jste odhlášeni.');
            $this->redirect('Povoden:stredisko');
    }
}